package com.shenzhenai.it_hei_ma_mythreadtest.test5;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;

/**
 * @author huangzehui
 * @date 2025/9/1 13:05 周一
 * @description
 */
public class MyThread extends Thread {

    // {10,5,20,50,100,200,580,800,2,80,308,708};
    // 数组 集合
    ArrayList<Integer> list;


    public MyThread(ArrayList<Integer> list) {
        this.list = list;
    }


    @Override
    public void run() {
        // 1. 循环
        // 2. 同步代码块
        // 3. 判断
        // 4. 判断
        while (true) {
            synchronized (MyThread.class) {
                if (list.isEmpty()) {
                    break;
                } else {
                    // 继续抽奖
                    // Random 或 Colections.shuffle 都可以达到随机
                    // Colections.shuffle 是通过打乱集合的方式
                    Collections.shuffle(list);
                    int price = list.remove(0);
                    System.out.println(getName() + "又产生了一个 " + price + " 元大奖");
                }
            }

            try {
                // 这里睡一下，可以让多个线程抢占cpu的执行权更均匀
                Thread.sleep(10);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
